//axios基础的封装
import axios from "axios";
import { ElMessage } from "element-plus";
import { useUserStore } from "@/stores/user";
import router from "@/router";
// const userStore = useUserStore();
// 创建axios实例
const http = axios.create({
        baseURL: 'http://pcapi-xiaotuxian-front-devtest.itheima.net',
        timeout: 50000
})
//拦截器
// axios请求拦截器
http.interceptors.request.use(config => {
        // 1. 从pinia获取token数据
        const userStore = useUserStore()
        // 2. 按照后端的要求拼接token数据
        const token = userStore.userInfo.token
        if (token) {
                config.headers.Authorization = `Bearer ${token}`
        }
        return config
}, e => Promise.reject(e))

// axios响应式拦截器
http.interceptors.response.use(res => res.data, e => {
        console.log(e, '1238888888888888')
        const userStore = useUserStore()
        //统一错误提示
        if (e.response.data) {
                ElMessage({
                        type: 'warning',
                        message: e.response.data.msg
                })
        }

        //401token失效处理
        //1.清除本地用户数据
        if (e.response.status === 401) {
                userStore.claerUserinfo()
                //2.跳转到登录页面
                router.push('/login')
        }

        return Promise.reject(e)
})
//默认导出,后续需要引入时候便不再需要{}
export default http